import axios from "axios"
import constants from "@/common/constants"
import catchUtil from "@/utils/catchUtil"


//配置axios
const service = axios.create({
	baseURL:constants.HTTP_CONFIG.baseUrl,
	timeout:constants.HTTP_CONFIG.timeout
})

//设置请求拦截
service.interceptors.request.use(config => {
	const userInfo = catchUtil.getLocalStorage('userInfo');
	if(userInfo && userInfo.token){
		//设置token权限
		config.headers.token = userInfo.token
	}
	return config
})

//设置响应拦截
service.interceptors.response.use(response => {
	return response.data
},(error) => {
	if(error && error.response){
		switch(error.response.status){
			case 400:error.message = '请求错误';break;
			case 401:error.message = '未授权，请重新登录';break;
			case 403:error.message = '拒绝访问';break;
			case 404:error.message = '请求错误，未找到该资源';
				window.location.href = "/NotFound";
				break;
			case 405:error.message = '请求方式为允许';break;
			case 408:error.message = '请求超时';break;
			case 500:error.message = '服务端错误';break;
			case 501:error.message = '网络未实现';break;
			case 502:error.message = '网络错误';break;
			case 503:error.message = '服务不可用';break;
			case 504:error.message = '网络超时';break;
			case 505:error.message = 'http版本不支持该请求';break;
			default:
				error.message = `连接错误${error.response.status}`
				break;
		}
	}
	if(error.message.includes('timeout')){
		error.message = '请求超时，请稍后再试';
	}
	return Promise.reject(error.message)
})

export default service